﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ideas2Realize.Data.Business.Interface
{
    public interface IUserRepository : IRepository<Models.User>
    {
        IEnumerable<Models.User> GetAll();
        Models.User GetById(int id);
        Models.User GetByUsername(string username);
        Models.User AuthenticateUser(string username, string password);
        void RegisterUser(Models.User user);
        string[] GetRoles(string username);
        PetaPoco.Page<Models.User> GetPaged(int limit, int page);
        IEnumerable<Models.PhoneType> GetPhoneTypes();
        IEnumerable<Models.Role> GetRoles();
        void AddToRole(Models.User user, int roleId);
        Models.UsersView GetViewById(int userId);
        Models.UsersView GetViewByUsername(string username);
        IEnumerable<Models.Department> GetDepartments();
        Models.UsersView GetResponsibleUserByDepartment(int departmentId);
        PetaPoco.Page<Models.Department> GetPagedDepartments(int limit, int page);
        void SaveDepartment(Models.Department department);

        Models.Department GetDepartmentById(int p);
    }
}
